﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComponentFactory.Krypton.Toolkit;
using System.Runtime.Remoting.Messaging;
using System.Windows.Forms;

namespace celinda.Class
{
    public class Outils
    {
        public static string repBase = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Celinda\";
        public static string ficBase = "celinda.sqlite";

        #region Boite de Dialogue
        public static void Alerte(string message, bool connecte = true)
        {
            if (connecte)
                KryptonMessageBox.Show(message, ((Utilisateur)CallContext.GetData(Const.UserConnected)).Login, MessageBoxButtons.OK, MessageBoxIcon.Information);
            else
                KryptonMessageBox.Show(message, message, MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

        public static void Alerte(string message, string[] lParam, bool connecte = true)
        {
            if (connecte)
            {
                message = System.String.Format(message, lParam);
                KryptonMessageBox.Show(message, ((Utilisateur)CallContext.GetData(Const.UserConnected)).Login, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
                KryptonMessageBox.Show(message, "Alerte", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        public static void Erreur(string titre, string body, bool connecte = true)
        {
            if (connecte)
                KryptonMessageBox.Show(body, ((Utilisateur)CallContext.GetData(Const.UserConnected)).Login + " : " + titre, MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
                KryptonMessageBox.Show(body, titre, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        public static DialogResult ChoixOuiNon(string message, bool connecte = true)
        {
            KryptonTaskDialog ktd = new KryptonTaskDialog();
            ktd.CommonButtons = TaskDialogButtons.Yes | TaskDialogButtons.No;
            ktd.Content = message;
            ktd.Icon = MessageBoxIcon.Question;
            if (connecte)
                ktd.WindowTitle = ((Utilisateur)CallContext.GetData(Const.UserConnected)).Login;
            else
                ktd.WindowTitle = ("Question");

            return ktd.ShowDialog();
        }
        #endregion

        public static void InitBase()
        {
            if (!System.IO.File.Exists(Class.Outils.repBase + Class.Outils.ficBase))
            {
                if (!System.IO.Directory.Exists(Class.Outils.repBase))
                    System.IO.Directory.CreateDirectory(Class.Outils.repBase);

                Repository.SocieteRepositoryNH.CreateBase();

                Utilisateur u = new Utilisateur();
                u.Login = "root";
                u.MotDePasse = "admin";
                u.Etat = Const.EtatActif;

                Repository.UtilisateurRepositoryNH r = new Repository.UtilisateurRepositoryNH();
                r.Save(u);
            }
            
            Repository.SocieteRepositoryNH.UpdateBase();
        }
    }
}
